草庐IT

c++ - 为什么 std::is_array 对 std::array 返回 false?

全部标签

ruby - 为什么 bundle 更新后 gem 仍然过时

我正在开发一个gem,它在github上。当我在应用程序中包含gem时,进行capistrano部署,然后(在服务器上)运行:bundleoutdated我明白了:*authengine(0.0.1d8baa49>0.0.1de43dfa)这告诉我有更新的提交可用。为什么bundle更新(capistrano部署的一部分)不提取更新的版本?宿主应用程序的Gemfile中没有版本限制,无论如何它们具有相同的版本号,只是不同的提交。即使我登录服务器并运行bundleupdateauthengine之后我得到了相同的“过时”结果。我在这里缺少什么? 最佳答案

ruby - 正则表达式的 o 修饰符是什么意思?

Ruby正则表达式有一些选项(例如i、x、m、o)。例如,i表示忽略大小写。o选项是什么意思?在riRegexp中,它说o表示只执行一次#{}插值。但是当我这样做时:a='one'b=/#{a}/a='two'b不变(它保持为/one/)。我错过了什么? 最佳答案 直接来自thego-tosourceforregularexpressions:/ocausesany#{...}substitutionsinaparticularregexliteraltobeperformedjustonce,thefirsttimeitiseva

ruby - 为什么 psych yaml 解释器在 80 个字符左右添加换行符?

Psych是自ruby​​1.9.3以来的默认yaml引擎为什么,为什么psych在其输出中添加换行符?检查下面的示例。ruby-v#=>ruby1.9.3p374(2013-01-15revision38858)[x86_64-linux]require'yaml'"thisabsolutelynormalsentenceismorethaneightycharacterslongbecauseitIS".to_yaml#=>"---thisabsolutelynormalsentenceismorethaneightycharacterslongbecauseit\nIS\n...

ruby - 为什么 `Enumerable` 有 `first` 而不是 `last` ?

Enumerable有first:(3..5).to_enum.first#=>3但它没有last:(3..5).to_enum.last#=>NoMethodError:undefinedmethod`last'for#这是为什么? 最佳答案 是因为不是所有的可枚举对象都有最后一个元素。最简单的例子是:[1,2,3].cycle#(anexampleofwhatcycledoes)[1,2,3].cycle.first(9)#=>[1,2,3,1,2,3,1,2,3]即使枚举器元素是有限的,也没有简单的方法来获取最后一个元素,除非

ruby - 在 Ruby 的情况下使用带正则表达式匹配的命名捕获……什么时候?

我想使用命名捕获来解析用户输入以提高可读性。当他们键入命令时,我想捕获一些参数并传递它们。我在case语句中使用RegExp,因此无法分配/pattern/.named_captures的返回值。这是我希望能够做的(例如):whilecommand!="quit"print"Command:"command=gets.chompcasecommandwhen/load(?\w+)/load(filename)endend 最佳答案 namedcaptures在此语法时设置局部变量。regex-literal=~string不要在其他

ruby - 是否可以让 class.property = x 返回 x 以外的东西?

假设我有一个Ruby类:classMyClassdefself.propertyreturn"someVal"enddefself.property=(newVal)#dosomethingtoset"property"success=truereturnsuccess#successisabooleanendend如果我尝试执行MyClass.property=x,整个语句的返回值始终是x。许多基于C/受启发的语言都习惯于返回bool“成功”值-是否可以使用Ruby中的“等于语法”为setter执行此操作?此外-如果这不可能,为什么不呢?允许“equalssetter”操作返回一个值

ruby - 化简多个is_a?调用对象

如何使用迭代器重写这一行?actor.inspectifactor.is_a?Array||actor.is_a?Hash我的尝试无效:actor.inspectif[Array,Hash].each{|c|actor.is_a?c} 最佳答案 如果你想匹配精确的类(而不是后代),你可以使用:[Hash,Array].member?a.class我认为您应该解释一下您究竟需要实现什么。也许您唯一需要检查的是您的对象是否是Enumerable,或者即使它是respond_to?某个特定方法。

ruby-on-rails - rails : How to test if an attribute of a class object is required in the model policy?

简单地说,我有一个模型用户,其中包含名称、电子邮件和评论作为属性。validates_presence_of:namevalidates_presence_of:email所以“姓名”和“电子邮件”是必需的,但不是“评论”。my_user=User.new我想找到一种方法来测试像my_user.name.required?或User.name.required?类似的东西。我的目标是创建一个表单,并根据该项目是否设置为“validates_presence_of”,将特定类动态添加到表单项目span或td我试图搜索它,但没有找到任何相关信息。有没有简单的方法可以做到这一点?谢谢

arrays - Ruby 数组上的未定义方法 'to_h'

根据RubyArraydocumentation,有一个方法to_h可以用来将数组转换为散列,只要数组的每个元素都是另一个包含两个元素的数组。来自同一文档的以下示例p[[:foo,:bar],[1,2]].to_h但是,当我运行上面的代码时,出现了这个错误:irb(main):001:0>p[[:foo,:bar],[1,2]].to_hNoMethodError:undefinedmethod`to_h'for[[:foo,:bar],[1,2]]:Arrayfrom(irb):1fromE:/RubyInstall/bin/irb:12:in`'irb(main):002:0>我的

ruby - "g"在 Ruby 的 "gsub"和 Vim 的替换命令中代表什么?

Ruby和Vim都使用“g”和替换命令来表示“所有出现”。“g”代表什么?具体来说,在Ruby中,Stringclass有两个“sub”命令:sub将只替换第一个出现的地方,gsub将替换所有出现的地方。例如:string="Onepotato,twopotato,threepotato,four."string.sub('potato','banana')#=>"Onebanana,twopotato,threepotato,four."string.gsub('potato','banana')#=>"Onebanana,twobanana,threebanana,four."类似